<HTML>
<HEAD>
  <STYLE type="text/css">
    H1 {color: black }
    H2 {color: maroon }
    H3 {color: #007090 }
    A.head:link {color: #0060a0 }
    A.head:visited {color: #3040c0 }
    A.head:active {color: white }
    A.head:hover {color: yellow }
    A.red:link {color: red }
    A.red:visited {color: maroon }
    A.red:active {color: yellow }
  </STYLE>
</HEAD>
<TITLE>Magic-8.3 Command Reference</TITLE>
<BODY BACKGROUND=graphics/blpaper.gif>
<H1> <IMG SRC=graphics/magic_title8_3.png ALT="Magic VLSI Layout Tool Version 8.3">
     <IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>

<H2>def</H2>
<HR>
Read or write DEF format files.
<HR>

<H3>Usage:</H3>
   <BLOCKQUOTE>
      <B>def</B> <I>option</I> <BR><BR>
      <BLOCKQUOTE>
         where <I>option</I> is one of the following:
	 <DL>
	   <DT> <B>read</B> <I>filename</I> [<B>-labels</B>] [<B>-annotate</B>]
			[<B>-noblockage</B>]
	   <DD> Read a DEF file <I>filename</I>[<B>.def</B>]
	   <DT> <B>write</B> [<I>cell</I>] [<B>-units</B> <I>value</I>] [<B>-anal</B>]
	   <DD> Write DEF for current or indicated cell named <I>cell</I>
	   <DT> <B>help</B>
	   <DD> Print help information (command summary)
	 </DL>
      </BLOCKQUOTE>
   </BLOCKQUOTE>

<H3>Summary:</H3>
   <BLOCKQUOTE>
      The <B>def</B> command reads and writes DEF format files.  These
      files are generally assumed to be digital standard-cell based
      layouts.  The DEF format has no real concept of hierarchy.  To
      generate a valid DEF file that may be recognized by other
      software, it is necessary to have a layout with standard cells
      using the <B>port</B> method to declare input and output ports.
      In particular, the <B>port class</B>  and <B>port use</B> are
      designed to work with the DEF read and write routines. <P>

      The technology file should have a <B>lef</B> section
      describing how LEF and DEF files should be written.  However, if
      an appropriate LEF file exists and is read prior to writing a
      DEF format file, the technology will be initialized from the
      file if it is not declared in the technology file. <P>

      Normally the DEF file is written in units of nanometers according to
      the active GDS output scale (UNITS DISTANCE MICRONS 1000).  If option
      "<B>-units</B> <I>value</I>" is used, then the units indicated by
      <I>value</I> are used instead of 1000.  This option can be used, for
      example, to preserve units when re-writing a DEF file that was read
      with "<B>def read</B>".  There is no guarantee that values can be
      accurately represented at the specified scale.  The <B>-units</B>
      option was introduced in magic version 8.2.113. <P>

      The "<B>-labels</B>" option to the "<B>def read</B>" command
      causes each net in the NETS and SPECIALNETS sections of the DEF
      file to be annotated with a label having the net name as the label
      text. <P>

      The "<B>-annotate</B>" option will add labels to a layout from a
      DEF file, but will not add layer geometry or subcells.  This is
      useful for labeling all of the regular nets if the DEF file was
      previously read without the <B>-labels</B> option. <P>

      The "<B>-noblockage</B>" option will ignore all BLOCKAGES sections
      in the DEF file, in effect producing only mask layer geometry.  If
      not specified, then layer BLOCKAGES in the DEF file are treated
      like obstructions in LEF files, and translated into obstruction
      layers in magic (per the definition of obstruction layers in either
      the "lef" section of the magic technology file, or in a technology
      LEF file read prior to reading the DEF file). <P>

      The "<B>-anal</B>" option for "<B>def write</B>" satisfies the
      (very dubious) rule interpretation that "NONDEFAULT RULE" blocks
      must contain a rule for every metal layer.  This is based on a
      ridiculous interpretation of a specification that is poorly
      worded and ambiguous.  The interpretation makes no sense
      whatsoever.  But some tools will not accept the more rational
      interpretation. <P>
   </BLOCKQUOTE>

<H3>Implementation Notes:</H3>
   <BLOCKQUOTE>
      <B>def</B> is implemented as a built-in <B>magic</B> command.
      Only the critical part of the DEF definition has been
      implemented.  Some uncommon forms of syntax such as
      wire extensions are not implemented.  This is largely due
      to the incomplete nature of the LEF/DEF spec.  It is unlikely
      that such forms will be encountered in third-party input.
   </BLOCKQUOTE>

<H3>See Also:</H3>
   <BLOCKQUOTE>
      <A HREF=lef.html><B>lef</B></A> <BR>
      <A HREF=port.html><B>port</B></A> <BR>
   </BLOCKQUOTE>

<P><IMG SRC=graphics/line1.gif><P>
<TABLE BORDER=0>
  <TR>
    <TD> <A HREF=commands.html>Return to command index</A>
  </TR>
</TABLE>
<P><I>Last updated:</I> March 30, 2022 at 5:31pm <P>
</BODY>
</HTML>
